package com.hxkj.service;


import com.hxkj.entity.po.Role;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Created by admin on 2017/8/21.
 */
public interface RoleService {
    /**
     *
     * 根据主键查询Role对象
     *
     * @param roleId
     * @return Role对象
     */
    Role get(Long roleId);

    /**
     *
     * 根据查询条件查询符合条件的Role对象
     *
     * @param role
     * @return 符合条件的Role对象List
     */
    List<Role> get(Role role);



    /**
     *
     * 根据主键删除Role对象
     *
     * @param roleId
     * @return 影响条件数
     */
    int delete(Long roleId);


    /**
     *
     * 根据主键删除Role对象
     *
     * @param roleIds
     * @return 影响条件数
     */
    int delete(String roleIds)throws Exception;

    /**
     *
     * 根据条件删除符合条件的Role对象
     *
     * @param role
     * @return 影响条件数
     */
    int delete(Role role);

    /**
     *
     * 插入Role对象
     *
     * @param role
     * @return 影响条件数
     */
    int save(Role role);

    /**
     *
     * 更新Role对象
     *
     * @param role
     * @return 影响条件数
     */
    int update(Role role);

    /**
     * 获得roleCode集合
     * @param account
     * @return
     */
    Set<String> findRolesByAccount(String account) throws Exception;

    /**
     * 根据appKey Role对象
     * @param appKey
     * @return
     */
    List<Role> getRolesByAppKey(String appKey);

    /**
     * 通过account和appkey获得
     * @param appKey account
     * @return
     */
    List<Role>getRolesByAccount(String appKey, String account);

    /**
     * 根据appKey验证角色是否属于该app
     * @param appKey
     * @param roleId
     * @return
     */
    Role getOneRole(String appKey, Long roleId);


    Map<String,Object> getUserAppRole(Long userId, Long appId);
}
